您的位置:首页 > 编程语言 > Go语言

Django初识

2016-04-20 00:00 597 查看
系统环境:12.04 ubuntu x64python 2.7.3Django 1.9.5 (python 3默认安装了Django)IP:192.168.209.33一、pip安装下载地址https://bootstrap.pypa.io/get-pip.py安装命令
[root@ubuntu ~]#python get-pip.py

会连带下载setuptools和wheel,可以通过指定参数不下载--no-setuptools--no-wheel二、Django安装通过pip安装python包
[root@ubuntu ~]#pip install Django==1.9.5
通过python检查三、开发的准备工作Django 1.9以上才可以1. 检查Django[root@ubuntu ~]#python -c "import django;print(django.get_version())"
2. 创建工作目录并创建项目(避免命名,不要用django和test)错误1:“command not found: django-admin”mysite/外部:用来连接项目,不要取跟django相关的名称manage.py:用于与Django项目交互的命令行工具mysite/内部:其实是一个python包,在调用的时候可以使用,例如 mysite.urlsmysite/_init_.py:一个空的文件,用于告诉Python这个目录应该当作python包的形式mysite/settings.py:用于设置Django项目mysite/urls.py:提供URL连接Django项目mysite/wsgi.py:为Django项目提供一个WSGI web服务器的入口3. 启用开发服务[root@ubuntu ~/python_django/mysite]#python manage.py runserver暂时忽略更新数据库的警告,退出服务按Ctrl-c通过http://127.0.0.1:8000访问Django自带的轻量级web服务器这个web服务器,只为了Django的项目开发,不要用于web服务运用可以使用如下命令,修改服务器的访问IP和端口,默认是127.0.0.1:8000python manage.py runserver 0.0.0.0:8080允许所有IP访问
python manage.py runserver 0.0.0.0:8000
这个开发服务器在不重启情况下,会自动更新加载python代码。但增加文件类操作,就需要重启服务器四、开发一个polls调查应用(一)初识,新建一个简单的url views在manage.py所在目录下
[root@ubuntu ~/python_django/mysite]#python manage.py startapp pollsDjango会自动创建目录结构编写view,创建polls/urls.py。在url的任意匹配下,调用views下的index函数,name为url的名字
修改项目url指向连接到polls下的url,修改/mysite/urls.py。在url/polls下,调用polls包下的urls查看6. url函数:regex和view参数,kwargs和name参数regex:r''用于正则匹配,但不支持$末尾字符串匹配,也不会寻找GET、POST参数和域名。例如:https://www.example.com/myapp/?page=3,只会匹配myapp/view:当Django匹配到对应目录时,会调用该目录的view函数kwargs:任意的键盘参数将会传递给view函数name:命名url五、开发一个polls调查应用(二)设置数据库,创建模块,Django管理Database setup关于修改默认数据库
Django默认设置数据库为SQLite这款轻量级数据库,但你也可以选择使用其他数据库。修改NAME,提前新建数据库,用户,密码,主机都要指定。即还要确保mysite/settings.py具有新建数据库的权限。修改时区
vim settings.py默认是UTC全球标准时间INSTALLED_APPS 保存所有Django应用程序,默认包含如下
INSTALLED_APPS = [
'django.contrib.admin', # 管理网站
'django.contrib.auth', #身份验证系统
'django.contrib.contenttypes', #内容类型的框架
'django.contrib.sessions', #会话框架
'django.contrib.messages', #消息框架
'django.contrib.staticfiles', #管理静态文件的框架
]创建数据库
[root@ubuntu ~/python_django/mysite]#python manage.py migrateCreating && Activating models 创建模块
Question类新建提问文件,日期文件;Choice类新建选择文件,
[root@ubuntu ~/python_django/mysite/polls]#vim models.py激活模块
[root@ubuntu ~/python_django/mysite/mysite]#vim settings.py增加模块,会在polls/目录下新建migrations目录
[root@ubuntu ~/python_django/mysite]#python manage.py makemigrations polls输出模块即将的操作,并没有创建模块表,只是把操作输出出来,以供检查
[root@ubuntu ~/python_django/mysite]#python manage.py sqlmigrate polls 00011.这段输出会取决于使用的数据库,这里默认的SQLite
2.自动创建表的名称:appname_modelname
3.自动增加id为主键,serial自增
4.一般用文件名_id作为外键,并不强制执行应用模块,使用migrate命令,更新数据库,创建模块表
[root@ubuntu ~/python_django/mysite]#python manage.py migrate创建模块:
在models.py中修改模块
使用命令python manage.py makemigrations为模块去创建migrations目录
使用命令python manage.py migrate在数据库中去应用更改的模块
之所以把各个步骤拆开,是为了修改和应用分隔,更容易开发和使用Playing with the API1. 调用python的shell终端[root@ubuntu ~/python_django/mysite]#python manage.py shell不用直接python打开终端,是因为manage.py设置DJANGO_SETTINGS_MODULE变量为mysite/settings,保证路径
djangosetup()

报AttrubuteError 需要检查你的Django版本2. 在shell中使用API
Question, Choice   Questionobjectsall()   timezoneq  Question(question_text, pub_datetimezonenow())qsave()qidqquestion_textqpub_dateqquestion_text  qsave()Questionobjectsall()

3. 增加_str_方法,改变Question.objects.all()的输出polls/models.py

使用双下划线定义的API,添加的__str__项目会自动管理,方便交互自定义方法:polls/models.py

4. 打开新的python shell
:

Introducing the Django AdminDjango自动化生成一个管理网站接口创建管理用户
[root@ubuntu ~/python_django/mysite]#python manage.py createsuperuser开启开发服务器,打开http://127.0.0.1:80000/admin
[root@ubuntu ~/python_django/mysite]#python manage.py runserverMake the poll app modifiable in the adminapp不显示在管理网站主页上,这里需要告诉管理网站,Question项目有管理接口。编辑polls/admin.pypolls/admin.py
from django.contrib import adminfrom .models import Questionadmin.site.register(Question)

Explore the free admin functionality点击下What's up?可以忽略原来设置参数,直接在页面修改。点击History查看修改历史六、开发一个polls调查应用(三)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: