||
目录:
1、安装Django
2、创建项目
3、创建应用
4、创建一个页面(响应)步骤
5、URL的第二种配置
6、开发templates
7、Models
8、相关问题
1、安装django
安装环境为win7+anaconda+python35,安装命令conda install django.
2、创建项目
(1)打开命令行(cmd),进入想要安置项目的目录(博客项目为例);
(2)命令行输入:
django-admin startproject myblog ,若没有报错,则创建项目成功,myblog是项目名;
可以使用django-admin可以查看所有django指令;
(3)使用pycharm打开项目工程,项目结构如下图:
相关文件说明:
1、manage.py 是与项目进行交互的命令行工具集的入口,也就是项目管理器
执行python manage.py 查看manage.py中所有命令,其中有一个名为runserver的子命令用于启动服务器(django自带的小型服务器),然后可以打开网站访问项目。
命令行输入:pythonmanage.py runserver
然后在浏览器中输入http://127.0.0.1:8000/或者http://localhost:8000/访问页面(8000为端口号),结果如下图。如果要改变端口号的话,只需在runserver后面加上所需要的端口号。显示如下结果说明项目创建成功。(windows下cmd中使用ctrl+c中断程序。)
2、myblog目录(与项目名相同)是项目的一个容器,包含了项目最基本的配置,目录名称默认与项目名相同,不建议修改。该目录中的文件:
(1)wsgi.py: 全称为python web server gateway interface中文名python网关接口,是django应用与web服务器的接口,在开发过程中基本上不会用到它,最好不要改动。
(2)urls.py:URL配置文件,Django项目中所有地址(页面)都需要我们自己去配置。
(3)settings.py:是整个项目最核心的配置文件,是项目的总配置文件,包含了数据库、web应用、时间等各种配置。
BASE_DIR:项目的根目录
SECRET_KEY:安全码,项目启动必备,创建项目是自动创建该变量
(4)__init__.py:pyhon中声明模块的文件,一般为空。
3、创建应用
创建步骤:
(1) 打开命令行,进入项目中的manage.py同级目录
(2) 命令行输入python manage.py startapp blog(注意应用名不允许与python中模块名相同)
(3) 添加应用名到settings.py中的INSTALLED_APPS里
应用目录介绍:
(1) migrations模块:数据移植(迁移)模块,其中文件均为django自动生成;
(2) admin.py:是当前的后台管理系统配置文件;
(3) apps.py:是当前应用的配置文件,django1.9以后才自动生成;
(4) models.py:是数据模块,使用ORM模块,类似MVC结构中的models的作用;
(5) tests.py:自动测试模块,django提供了自动化测试功能,在这里编写脚本;
(6) views.py:执行相应代码所在模块,代码逻辑处理的主要地点,整个项目最主要的代码编写地方;
4、创建一个页面(响应)步骤
(1) 创建响应
编辑views.py文件,每个响应对应一个函数,函数必须返回一个响应,函数必须存在一个参数,一般约定为request,每个响应(函数)对应一个URL
(2) 配置URL:
编辑urls.py文件,每个URL都以url函数的形式写出来;url函数放在urlpatterns列表中;url函数有三个参数:URL(正则),对应方法、名称
(3) 在命令行输入python manage.py runserver启动服务器
5、URL的第二种配置:采用include的方法
(1) 在根目录下urls.py中引入include
(2) 在APP目录下创建urls.py文件,格式与根urls.py相同
(3) 在根目录下urls.py中的url函数的第二个参数改为include(‘app_name.urls’)
注意:
(1) 根目录下urls.py针对APP配置的URL名称,是该APP所有URL的总路径
(2) 配置URL时注意正则表达式结尾符号$和/
6、开发templates(即html页面)
Templates是html文件,使用django模板语言(DTL),也可以使用第三方模板(如jinja2)
Templates创建:
(1) 在APP根目录下创建名为templates的目录
(2) 在该目录下创建html文件
(3) 在views.py中使用render()函数返回该页面
render():一般有3个参数
1)参数一:request(一般为默认参数);
2)参数二:模板路径;
3)参数三:从后台传递到前端的数据,支持一个dict类型参数,该字典是后台传递到模板的参数,键为参数名。 在模板中使用{{参数名}}来直接使用。
templates冲突:
Django查找template:Django按照INSTALLED_APPS中的添加顺序查找templates, 不同APP下templates目录中的同名.html文件会造成冲突;
解决方案:在APP的templates目录下创建以APP名为名称的目录,将html文件放入新创建的目录下;
7、Models:
通常,一个model对应数据库的一张数据表,django中models以类的形式表现,它包含了一些基本字段以及数据的一些行为。
ORM:对象关系映射(objectrelation mapping)实现了对象与数据库之间的映射,隐藏了数据访问细节,不需要编写SQL语句。
Models创建:
(1)在应用根目录下创建models.py,并引入models模块(django在创建应用时自动实现)
(2)创建类,继承models.Model,该类即是一张数据表
(3)在类中创建字段,字段即类里面的属性。
生成数据表:
(1)命令行进入manage.py同级目录
(2)执行pythonmanage.py makemigrations app名(可选)进行数据迁移
(3)在执行Pythonmanage.py migrate
创建完数据表之后查看:
(1)Django会自动在app/migrations/目录下生成移植文件
(2)执行pythonmanage.py splmigrate 应用名文件id 查看SQL语句
(3)默认的splite3的数据库在项目根目录下db.sqlite3
查看并编辑db.sqlite3
使用第三方软件SQLiteexpert personal 轻量级免费
安装教程:https://jingyan.baidu.com/article/ea24bc3997a8a1da63b33159.html
页面呈现数据:
在views.py中import models
获取数据对象(即数据表)
通过render将参数三将数据传递到前端
8、相关问题:
(1)在Django中如何正确完整地删除一个App
http://blog.csdn.net/huochen1994/article/details/52680067
(2) django中添加js、css、图片等外部文件的方法
https://www.cnblogs.com/zknublx/p/5916354.html
(3)django中如何从views.py中将python的list或dict传递到前端,并显示字典或列表中的内容?
https://code.ziqiangxuetang.com/django/django-template2.html
http://blog.csdn.net/gaoxiaoba/article/details/52469614(字典数据显示)
http://blog.csdn.net/u012643122/article/details/53308078(列表元素提取)
https://www.cnblogs.com/xqnq2007/p/7979551.html
https://stackoverflow.com/questions/13138859/django-length-of-a-list
搜索:django在view中传递一个字典给模板(template),如何在模板中遍历字典呢或单独提取某个元素?
搜索:Django的模板,传递 list,如何提取 list 中的某个元素而不是遍历?
回答:{{xxx.1}}#1代表索引,xxx代表list
参考资料:
[1]http://www.imooc.com/learn/790 (django入门视频教程)
[2]http://djangobook.py3k.cn/(django书籍资料)
[3]https://docs.djangoproject.com/en/1.11/ref/(django API介绍)
[4]https://docs.djangoproject.com/en/1.11/ref/settings/#databases(django中数据库配置)
[5]https://code.ziqiangxuetang.com/django/django-tutorial.html(django基础教程)
[6] https://www.douban.com/note/145065606/(django模板过滤器)
[7]http://www.w3school.com.cn/ajax/ajax_intro.asp(ajax教程)
[8]http://www.w3school.com.cn/js/js_window_location.asp(js教程 )
[9]http://www.runoob.com/jquery/jquery-tutorial.html(jQuery教程)
[10]https://docs.djangoproject.com/en/1.11/(django官方文档)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-17 02:57
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社