Python-Django中的那些命令
# 1. 快速开始的helloworld # # 在下载好的django路径下执行django的安装 # https://pypi.python.org/pypi/Django/1.6.4 python3 setup.py install # # 新建django项目 django-admin.py startproject mysite # # 运行django项目 python3 manage.py runserver [port] # # 创建一个app python3 manage.py startapp appname# 2. model定义 # 模型定义特殊字段定义(后面一些Field被略去) # AutoFiled SlugField SmallIntegerField #Date,DateTime,Decimal,Char,File,Float,FilePath,Text#,Time,Binary,Boolean,BigInterger,NullBoolean,Image,#Interger,OneToOne #PositiveSmallIntegerField, #PositiveIntergerField,Url,Email # # 创建一个model实体 from django.db import models class Publisher(models.Model):name = models.CharField(max_length=30) // 普通字段website = models.URLField() // url类型字段email = models.EmailField() // email类型字段publication_date = models.DateField() // 时间类型字段publisher = models.ForeignKey(Publisher) // 引用信息(外键) # # 创建一个关联实体(此段来源自博客园@2BiTT) class Person(models.Model):name = models.CharField(max_length=128)def __unicode__(self):return self.nameclass Group(models.Model):name = models.CharField(max_length=128)members = models.ManyToManyField(Person, through='Membership')def __unicode__(self):return self.nameclass Membership(models.Model):person = models.ForeignKey(Person)group = models.ForeignKey(Group)date_joined = models.DateField()invite_reason = models.CharField(max_length=64) # # 实体常用方法(此段来源自博客园@2BiTT) class Person(models.Model):first_name = models.CharField(max_length=50)last_name = models.CharField(max_length=50)def __unicode__(self):return u'%s %s' % (self.first_name, self.last_name)def get_absolute_url(self):return "/people/%i/" % self.id# 3. 将实体生成到数据库 # 模型检测 (需要在settings.py中注册此app) python3 manage.py validate # # 模型生成sql语句查看 python3 manage.py sqlall modelname (app的名字) # # 模型生成到db 要生成用户之前必须做这一步 python3 manage.py syncdb# 4. django的后台管理操作 # 建立管理超级员 python manage.py createsuperuser # # 将model加入到admin管理列表中 在admin中 from django.contrib import admin from books.models import Publisher, Author, Book admin.site.register(Author,AuthorAdmin) # # 附加管理视图,将管理视图更明细 from django.contrib import admin class BookAdmin(admin.ModelAdmin):list_display = ('title', 'publisher', 'publication_date') #显示列list_filter = ('publication_date',) # 列过滤条件date_hierarchy = 'publication_date' # 日期选择条件ordering = ('-publication_date',) # 列表日期降序排列fields = ('title', 'authors', 'publisher') # 编辑时显示需要添加的列 其他列 null=Trueraw_id_fields = ('publisher',) # 编辑时 显示为id序号 ## 5. 控制视图输出内容 # 定义模板路径 TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'template').replace('\\','/'),# /Users/King/Documents/Ops/Python/HelloDjango/HelloDjango# /Users/King/Documents/Ops/Python/HelloDjango/HelloDjango/template ) # # 进入项目命令行模型 python manage.py shellfrom django.contrib.auth.models import Publisherp = Publisher.objects.create(name='Apress',website='www.apress.com')Publisher.name = 'tuling'所有的model都拥有一个objects管理器使用filter方法可以过滤obj Publisher.objects.filter(name='usa')模糊查询 Publisher.objects.filter(name__contains='usa') # 使用get方法可完成一个对象的获取,如果返回不止一个对象就会报错 Publisher.DoesNotExist使用order_by 排序 可 - 倒排p = Publisher.objects.filter(id=52).update(name='Apress Publishing')p.delete() 删除对象p.save() # # 导入静态文件 在setting.py中# 静态资源区域# 这是一个根目录区域 对应实际文件目录STATIC_ROOT = 'static/'# 这是url配置目录 给urls用的STATIC_URL = 'static/' 在模板页面中<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css"><script type="text/javascript" src="{{ STATIC_URL }}js/bootstrap.js"></script> 在urls.py的配置中from django.conf.urls.static import static在最后加入admin.autodiscover()urlpatterns = patterns('',# Examples:# url(r'^$', 'HelloDjango.views.home', name='home'),# url(r'^blog/', include('blog.urls')),url(r'^admin/', include(admin.site.urls)),(r'^$', latest_books),) + (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)) 在views.py对应的输出视图中return render_to_response('index.html', {'book_list': book_list,'STATIC_URL': STATIC_URL,})# 6. 其他解决方案 配置文件中 STATICFILES_DIRS = ('/Users/King/Documents/Ops/Python/HelloDjango/static', ) # # # 一个app基本的设置 # # import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) ROOT_URLCONF = 'HelloDjango.urls' SECRET_KEY = '&%s+d(0$motnksr+0o+oo8z9k=2h*7gd%gnnylrnc^w5#nut)h' DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = [] MIDDLEWARE_CLASSES = ('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware', ) WSGI_APPLICATION = 'HelloDjango.wsgi.application' DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),} } LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True # # Absolute filesystem path to the directory that will hold user-uploaded files. # # Example: "/home/media/media.lawrence.com/media/" # MEDIA_ROOT = '' # # # URL that handles the media served from MEDIA_ROOT. Make sure to use a # # trailing slash. # # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" # MEDIA_URL = '' # BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # TEMPLATE_DIRS = ('templates',) # 静态资源区域 # 这是一个根目录区域 对应实际文件目录 STATIC_ROOT = 'static/' # 这是url配置目录 给urls用的 STATIC_URL = 'static/' # STATICFILES_DIRS = ( # # Put strings here, like "/home/html/static" or "C:/www/django/static". # # Always use forward slashes, even on Windows. # # Don't forget to use absolute paths, not relative paths. # ) # STATICFILES_FINDERS = ( # 'django.contrib.staticfiles.finders.FileSystemFinder', # 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # # 'django.contrib.staticfiles.finders.DefaultStorageFinder', # ) # 定义模板路径 # List of callables that know how to import templates from various sources. # TEMPLATE_LOADERS = ( # 'django.template.loaders.filesystem.Loader', # 'django.template.loaders.app_directories.Loader', # # 'django.template.loaders.eggs.Loader', # ) TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates').replace('\\','/'), ) INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app', ) # LOGGING = { # 'version': 1, # 'disable_existing_loggers': False, # 'filters': { # 'require_debug_false': { # '()': 'django.utils.log.RequireDebugFalse' # } # }, # 'handlers': { # 'mail_admins': { # 'level': 'ERROR', # 'filters': ['require_debug_false'], # 'class': 'django.utils.log.AdminEmailHandler' # } # }, # 'loggers': { # 'django.request': { # 'handlers': ['mail_admins'], # 'level': 'ERROR', # 'propagate': True, # }, # } # }
Django框架中的基本交互
# 服务器端展示数据 from django.shortcuts import render_to_response def search(request):return render_to_response('search.html', {'books':books,}) # # search.html的数据渲染 , 利用模板 {% if books %}<ul>发现 {{ books | length }} 本书{% for book in books %}<li>{{ book.title }}</li>{% endfor %}</ul> {% else %}<p>没有查询到任何图书信息</p> {% endif %}
# 客户端提交数据 search_form.html
<html><head>
<title>Search</title></head>
<body>
{% if error %}
<p style="color:red;">请输入查询条件</p>
{% endif %}
<form action="/search_form/" method="get">
<input type="text" name="q">
<input type="submit" value="Search">
</form>
</body>
</html>
#
# 收集客户端信息
# from django.http import HttpResponse
# request.path() get_host() get_full_path() get_isecure()
# request.META[] 包含http头信息
def search_form(request):if 'q' in request.GET and request.GET['q']:q = request.GET['q']books = Book.objects.filter(title__icontains=q)return render_to_response('search_result.html', {'books':books,'query':q})else:return render_to_response('search.html', {'error': True})
最后附博文中基本实现代码一份
下一篇计划Django的高级应用
转载于:https://blog.51cto.com/apprentice/1405535
Python-Django中的那些命令相关推荐
- 如何在Python Django中处理用户身份验证
by Mohammed Subhan Khan 由Mohammed Subhan Khan 如何在Python Django中处理用户身份验证 (How to handle user authenti ...
- Python 解释器中使用help()命令如何退出
在python 解释器中使用help() 命令时,如何终止查询内容:使用 q 键或者使用 ctrl + d 转载于:https://my.oschina.net/u/2272631/blog/8156 ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
- 如何在Python程序中运行Unix命令
Unix是由Ken Thompson和Dennis Ritchie在1969年左右在AT&T贝尔实验室开发的操作系统. 我们可以使用许多有趣的Unix命令来执行不同的任务. 问题是,我们可以直 ...
- python代码中使用cmd命令出现cmd弹窗问题
在pycharm中写python代码使用到cmd命令的时候,习惯使用os 代码如下: import os command = 'XXXXX' os.systme(command) 在调试的时候不弹出c ...
- python未指定的错误_python - Python脚本中的Sips命令不起作用-“错误4:未指定文件”和“不是有效文件-正在跳过” - 堆栈内存溢出...
尝试通过Python脚本调整某些图像的大小(仅宽度). 这是一个Python脚本: # -*- coding: utf-8 -*- import subprocess import os # New ...
- Django中的常用命令
django 基本命令操作: django-admin startproject jay:建立一个jay的项目 django-admin startapp haha 建立一个haha的APP pyth ...
- python 执行shell命令行效率提升_在python脚本中执行shell命令的方法
使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...
- 实用的 Python —— os.system() 在 python 语句中执行 dos 命令
import os (1)os.getcwd():首先查看当前工作目录 (2)os.chdir("):切换文件夹 os.syetem(") 本质上这里不是讲的不是 python,而 ...
- Python Django中,页面改变但链接地址没有跳转,解决方法
预期是发送密码重置邮件后自动跳转到首页, 这个效果实现了,但是地址链接没有变,经过仔细定位, 解决方案如下: return render(request, 'login.html',{'msg': ' ...
最新文章
- JVM class加载机制的总结 收藏
- google-perftools优化nginx在高并发时的性能
- Sentinel 源码分析(一)
- 北方大学 ACM 多校训练赛 第十五场 买花
- Hadoop 之 MapReduce 的工作原理及其倒排索引的建立
- 方法重载与重写,返回类型
- 算法(一):二分查找法
- python 列表比较不同物质的吸热能力_文章
- mysql多表查询去重复数据_SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法...
- 操作系统系列(三)——编译和链接
- 用HTML+CSS做一个简单的新闻门户 1页网页
- 在HBuilder里为什么输入汉字是繁体字,而我的输入法设置的是简体
- 如何将接近开关作为限位开关连接?
- CF446D. DZY Loves Games
- E-PUCK机器人-软件
- CC2640R2F BLE5.0 CC2640R2F软件架构
- 轮播移动端 html,移动端h5如何使用轮播插件swipe
- 【路径规划】基于matlab蚁群算法机器人栅格地图最短路径规划【含Matlab源码 119期】
- Python声音处理入门
- 项目管理基础之逻辑思维学习