python新手学django2.0,
学习菜鸟教程的Django教程,链接如下:
安装:
pip安装Django
如果是pip 1.4,请使用:
pip安装https://www.djangoproject.com/download/1.11a1/tarball/
或者克隆代码:
git克隆https://github.com/django/django.git
创建项目:
django-admin . py start project hello world
在项目中创建应用程序:
django-admin.py startapp测试模型
启动服务器方法:
python manager . py runserver 0 . 0 . 0 . 0:8000
访问方法:浏览器输入
本地主机:8000/
Django采用mvc结构,在项目根目录下创建templates目录,修改主项目下的settings.py(见#修改位置一节):
.模板=[
{
后端: django . template . backends . django . django templates ,
Dirs: [base _ dir/templates ,],#修改位置
APP_DIRS :对,
选项:{
上下文处理者:[
django . template . context _ processors . debug ,
django . template . context _ processors . request ,
django . contrib . auth . context _ processors . auth ,
django . contrib . messages . context _ processors . messages ,
],
},
},
]
.
这样,html文件就可以放在模板里,由render渲染。
映射规则:
修改主项目下的urls.py文件,其中浏览器访问的路径映射到特定的类进行处理,比如:
urlpatterns=[
url(r^hello$,view.hello),
]
这里view是py文件,hello是它的函数之一,用来处理对*的响应。*.*: 8000/hello格式。其主要功能是将模板文件渲染为响应值,例如:
从django.shortcuts导入渲染
def hello(请求):
上下文={}
语境[hello]=Hello World!
返回render(请求, hello.html ,上下文)
Hello.html是放在模板中的文件,上下文中的内容作为变量传递给hello.html。
在模板文件中,可以使用变量和控制逻辑。
变量的使用方法是{{ xxx }}。例如,上面传递的参数将在hello.html中这样使用:{{ hello}}
控制逻辑的格式是
{% if xxx % } xxx {% endif %}
或者
{% for %} xxx {% endfor%}
等待
注释的格式是
{# xxx #}
您还可以继承:
在base.html中设置继承部分
{% block name %} xxx {% endblock %}
然后子类sub.html声明:
{% extends base.html %}
然后修改继承的段。
{% block name %} xxx {%endblock %}
您还可以包括:
{% includexxx.html %}
上面的hello处理可以区分GET处理和POST处理:
if request.method==GET :
做某事()
elif request.method==POST :
do_something_else()
您可以通过参数字典直接获取参数,例如:
请求。发布[q]
这里‘q’是参数,用它作为索引值得到相应的参数。
例如,表单提交的处理如下:
#接收发布请求数据
定义搜索_发布(请求):
ctx={}
如有要求。帖子:
ctx[rlt]=请求。发布[q]
return render(request, post.html ,ctx)
在响应函数的过程中,还可以与数据库进行交互。
首先配置数据库:(也可以配置成mysql)
数据库={
默认:{
引擎: django.db.backends.sqlite3 ,
NAME: os.path.join(BASE_DIR, db.sqlite3 ),
用户:雅各布,
密码: 123456 ,
主机:本地主机,
端口: 3306 ,
}
}
为数据库创建一个应用程序,并将应用程序名称添加到settings.py的INSTALLED_APPS项中
然后你可以定义这个表,比如:
# models.py
从django.db导入模型
类别测试(模型。型号):
名称=型号。CharField(max_length=20)
然后让数据库创建这个表:(不要丢失以下命令之一)
Python manage.py migrate #创建一个表结构
让Django知道我们已经在模型中做了一些改变
Python manage.py迁移测试模型#创建表结构
操纵数据库的内容,你可以通过上面的类来使用它,比如生成一个条目:
测试=测试(名称=vvv )
test.save()
删除条目:
Test.objects.filter(id=1)。删除()
更新条目:
Test.objects.filter(id=1)。更新(name=Google )
全部更新:
Test.objects.all()。更新(name=all )
写完数据库操作的代码,记得修改数据库app目录下的admin.py文件:
来自django.contrib导入管理
从TestModel.models导入测试
#在此注册您的模特。
管理员网站注册(测试)
这里的管理员,其实是框架提供的一个管理页面,可以很方便的把数据库信息展示出来。
再详细介绍下管理。
首先激活这个管理工具:修改映射规则文件urls.py,在统一资源定位器模式中添加条目:
url(r^admin/,管理网站网址),
创建一个超级用户:
python manage.py创建超级用户
这样,可以在浏览器中通过本地主机:8000/管理/进行访问了。
可以在页面中,看到之前创建的相关数据库,并且操纵它们的内容。
同时,还可以自定义数据库展示的表单方式,比如定义一个接触数据库:
班级联系(模型。型号):
名称=型号CharField(max_length=200)
年龄=模特。整数域(默认值=0)
邮件=模特。电子邮件字段()
def __unicode__(self):
返回自己的名字
在管理。巴拉圭中注册的时候,这样自定义表单:
#在此注册您的模特。
类联系管理员(管理员.ModelAdmin):
fields=(姓名,电子邮件)
管理员网站注册(联系人,联系人管理)
还可以做列表样式,内联其它数据表,增加搜索栏等,示例如下:
#在此注册您的模特。
类标记内联(管理TabularInline):
型号=标签
类联系管理员(管理员.ModelAdmin):
list_display=(姓名,年龄,电子邮件)#列表
search_fields=(name ,)
inlines=[TagInline] # Inline
字段集=(
[主,{
字段:(姓名,电子邮件),
}],
[高级,{
类:(折叠,),
字段:(年龄,),
}]
)
管理员网站注册(联系人,联系人管理)
完整代码工程参见:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。