标签:models 去掉 play 引入 数据 div set 文件复制 位置
-- 入门 # Django开发流程: # 1.创建虚拟环境; # 2.安装django; # 3.创建项目; # 4.创建应用; # 5.在models.py中定义模型类,为视图提供数据; # 6.定义视图,处理浏览器请求 # 7.配置URL # 8.创建模板,呈现数据 -- 虚拟环境 # 针对python不同项目,而对应安装的一堆包的集合; -- ubuntu中安装虚拟环境的命令(安装两个虚拟环境包,第二个是简易化操作) sudo pip install virtualenv sudo pip install virtualenvwrapper -- 创建虚拟环境 mkvirtualenv 环境名称 mkvirtualenv py_django -- 查看与使用虚拟环境 workon 两次tab键 workon py_django -- 删除虚拟环境 rmvirtualenv 虚拟环境名称 先退出:deactivate 再删除:rmvirtualenv py_django # 在创建虚拟环境过程中,在home目录下的.virtualenvs文件下, # 会生成刚创建的虚拟环境,而且过程中系统会默认生成多个包, # 以及将usr/bin/文件下的python文件复制到这个虚拟环境包里 # 的/bin文件下; -- 查看当前所有的包 pip list 或者pip freeze # 或者:~/.virtualenvs/py_django/lib/python2.7/site-packages下 # 查看所有的包 -- 虚拟环境下安装包 pip install 包名称 安装django1.8.2的包 pip install django==1.8.2 -- 创建项目(图书,英雄,一对多的关系) # 在Desktop下创建,不会出现权限问题; django-admin startproject 项目名称 -- 修改数据库配置 DATABASES = { ‘default‘:{ ‘ENGINE‘:‘django.db.backends.mysql‘, # 数据库引擎 ‘NAME‘:‘my_model‘, # 数据库名称,需要手动在mysql中创建数据库 ‘USER‘:‘root‘, # 用户名 ‘PASSWORD‘:‘mysql‘, # 密码 ‘HOST‘:‘localhost‘, # 主机 ‘PORT‘:‘3306‘ # 端口 } } # python3 使用PyMysql数据库驱动,需要在__init__.py文件下写入 import pymysql pymysql.install_as_MySQLdb() -- 创建应用 python manage.py startapp booktest(应用名称) -- 添加/安装应用 在test1/settings.py中INSTALLED_APPS下添加应用名称就可以安装; ‘bootest‘; -- 模型设计 -- 创建模型类 -- models.py # 定义类时,需要继承models.Model类; # class BookInfo(models.Model): btitle = models.CharField(max_length=20) # 设置字符长度; bpubdate = models.DateField() # 设置日期格式; # class HeroInfo(models.Model): hname = models.CharField(max_length=20) hcontent = models.CharField(max_length=100) hgender = models.BooleanField(default=True) # 设置布尔类型; hbook = models.ForeignKey(BookInfo) # 设置外键对象;英雄来源哪本书; -- 生成迁移文件(相当于生成sql语句,以及执行) 生成:python manage.py makemigrations(执行sql语句) # 查看迁移文件对应的sql语句 # python manage.py sqlmigrate news 0001 执行:python manage.py migrate(创建表结构) # 要执行迁移文件,才可以注册后台用户 -- 后台管理(CMS内容管理系统) -- 创建管理员 -- 注册用户 python manage.py createsuperuser # 用户名默认:python;密码:chuanzhi -- 后台登入及修改界面 -- 启动服务器,浏览 python manage.py runserver http://127.0.0.1:8000/admin -- 修改界面语言(默认英文) settings.py文件中修改成 LANGUAGE = ‘zh-Hans‘;TIME_ZONE = ‘Asia/Shanghai‘ # 在.virtualenvs/py_django/lib/python2.7/site-packages/django/contrib/admin/local/文件下 -- 后台管理引入模型类 # admin.py(注册模型类,将model.py创建的类引入后台) from models import * admin.site.register(BookInfo) admin.site.register(HeroInfo) # str方法中,使用了中文,需要在模型类中str方法下的属性encode("utf-8") -- 自定义字段显示信息 # 在后台显示所有属性,继承admin.ModelAdmin类 class BookInfoAdmin(admin.ModelAdmin): list_display = [‘id‘, ‘title‘, ‘pub_date‘] class HeroInfoAdmin(admin.ModelAdmin): list_display = [‘id‘, ‘name‘, ‘content‘, ‘gender‘, ‘book‘] # 将添加属性的类添加到注册中; admin.site.register(BookInfo, BookInfoAdmin) -- 或者:将注册代码以装饰器的形式装饰到定义的属性类; @admin.register(BookInfo) class BookInfoAdmin(admin.ModelAdmin): list_display = [‘id‘, ‘title‘, ‘pub_date‘] -- 视图(制作公共访问的页面) -- 定义视图函数(接受request,返回HttpResponse) from django.http import HttpResponse # 必须传入HttpRquest对象的request,返回HttpResonse对象; def index(request): return HttpResponse(‘hello world‘) -- 配置URLconf(找到对应视图函数) # 用户输入url,去掉域名与端口,再去匹配URLconf,对应调用view.py下的视图函数; -- URLconf 编写规则 1.使用正则表达式定义; 2.使用view.py中定义的视图 -- URLconf 配置过程 1.在自己创建的应用(booktest)中创建urls.py文件,配置URLconf,定义; from django.conf.urls import url from . import views urlpatterns = [url(r‘^$‘, views.index),] # view.index调用视图模块中定义的index函数; 2.在项目中的url.py,链接到应用的URLconf中; url(r‘^‘, include(‘booktest.urls‘)), # 其完整代码 from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r‘^admin/‘, include(admin.site.urls)) url(r‘^‘, include(‘booktest.urls‘)), ] -- 模板 -- 视图中寻找模板 -- 在settings.py中做设置,为了找到templates模板文件位置 ‘DIRS‘:[os.path.join(BASE_DIR, ‘templates‘)], # 定义模板文件位置:根目录; -- 在views.py中加载渲染模板 def index(request): cag = NewsCategory.objects.get(pk=1) # pk(primary key)相当于Id data = {‘cag‘: cag.cag_name} tpl = loader.get_template(‘index.html‘) new_tpl = tpl.render(data) return HttpResponse(new_tpl) # 简写成一下操作: def index(request): context = {a:b, c:d} return render(request, ‘booktest/index.html‘, context) # context用 # context中的键值作为标签内容传入页面; -- 测试test.py python3 manage.py test model(应用)
标签:models 去掉 play 引入 数据 div set 文件复制 位置
原文地址:http://www.cnblogs.com/pymkl/p/7738235.html