逆风起笔
c++ and web developer
主页
分类
标签
归档
About Me
友链
My Github
Proudly powered by
Leanote
Theme by ©
mrbird
文章 - django初体验
Dark
django初体验
? python ?
? django ?
发布于
2017-04-10
188人围观 0条评论
? python ?
? django ?
发表于
2017-04-10
188人围观 0条评论
## django的下载安装 根据[官网](https://www.djangoproject.com/download/)下载安装django ``` pip install Django==1.11 ``` ## 创建项目 ``` # 创建项目,目录名即为项目名称 djingo-admin <project_name> ``` 在项目目录下,python manage.py runserver启动本地服务器 * manage.py: 用来命令行交互的,管理项目用的 * setting.py: 用来配置项目的一些设置,比如允许url、语言、静态文件等等 * wgsi: 主要是和服务器网关有关系,暂时不用管 ## 应用 一个项目可以有多个应用,比如可以用python mangage.py startapp blog创建了一个blog应用,那么项目目录下就会生成一个blog的文件夹。 应用(比如blog)文件夹里会有一个view.py的文件,这个文件里定义视图的部分。如果要使用该应用(比如blog),那么一定要记住安装该应用,即在项目文件夹/setting.py中的install_app数组里添加该应用名称。 ## urls.py 项目文件夹下的urls.py里可以映射url到对应的函数执行部分。这里要提及include这个方法,这个方法可以用来使用嵌套路由。 ## render方法 view视图模块如果需要加载html文件怎么办?那么可以使用render方法渲染html文件,在应用目录下新建templates,然后加入模板文件就行,数据通过DTL模板引擎解析。注意:render方法寻找模板文件是通过install_app里的顺序来找的,所以如果不同应用间模板名称重复,那么建议在templates目录下在多加一层应用名称的目录,以区分开来不同应用的模板,同时render方法也应该多写一层应用名称的路径。 ## model model需要先在models.py下创建数据表对应的类,属性即对应着字段,写好之后,执行 ``` python manage.py makemigrations <app_name> ``` 如果不填写应用名称,那么即视为对所有app操作。然后执行python manage.py migrate即可以将对应类的数据映射到sqlite3中去了。 可以用 ``` python manage.py sqlmigrate <app_name> ``` <文件id>来查看创建数据表对应的sql语句。 创建完成之后,可以通过sqlite expert personal打开。也可以编辑其中的数据。 在view中 ,可以先导入import model模块,然后通过model.Article.object.get(pk=1)来获取主键为1的这条信息,然后再通过render渲染到模板上 ## admin admin可以用于管理model,管理models需要使用python manage.py createsuperuser创建超级用户。 然后访问localhost:8000/admin登录之后可以管理数据,如果想要展现的对象名称有所区别,可以修改models.py中的Article的__unicode__方法,返回self.title即可 ## 管理url html中的url一般用{% url 'appname:urlname' params %} appname是用namespace设置的,在include的第二个参数上设置 urlname是用name设置的,在url的第三个参数上设置 ## 一些语法 {% if <condition> %} {% else %} {% endif %} ## url参数 另外url中的参数用正则表示,比如url(r'^article/(?P<article_id>[0-9]+)$'),其中article_id即对应着url对应函数中的参数名称,并且名称要一直。 ## request.post request.post可以获取表单提交的name,这个很容易理解了,处理表单请求,可以单独写一个url来处理action ## filter 另外django的模板引擎也有filter类似的操作 ## django shell django带的django shell 可以用来调试 ``` python manager.py shell # (可能需要前面加winpty) ``` 开启django环境,然后from blog.models import Article,然后就可以直接像项目中那样使用Article的东西,这里调试输出的汉字乱码,找时间解决一下 ## 增强admin class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'content', 'pub_time') list_filter = ('pub_time', ) admin.site.register(Article, ArticleAdmin) 可以增强admin的一些功能
上一篇:
django 静态文件
下一篇:
linux复制粘贴
0
赞
提交评论
立即登录
,发表评论
没有帐号?
立即注册
0
条评论
More...
没有帐号?立即注册