django基础之一
Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。
安装Django:
在cmd中:pip3 install django
查看安装的版本
>>> import django >>> print(django.get_version()) 1.11.5
pycharm创建Django项目:
使用pycharm:File--New Porject -- Django--下图配置 -- 点击create
创建Django工程:
命令行创建:
$ django-admin startproject mysite
这将会在你的当前目录下生成一个 mysite 目录。如果它不能正常工作,请查看运行django-admin遇到的问题。
注意
你给项目命名时,项目名称不能和Python或Django的 内部组件名称同名。特别地,你应该避免使用类似django(与Django自身冲突)或 test(与Python内建的包冲突)这样的名称。
代码应该存在哪里?
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
这些文件是:
外层的mysite/根目录仅仅是项目的一个容器。它的命名对Django无关紧要;你可以把它重新命名为任何你喜欢的名字。
manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互。 你可以在django-admin和manage.py中读到关于manage.py的所有细节。
内层的mysite/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)。
mysite/__init__.py:一个空文件,它告诉Python这个目录应该被看做一个Python包。 (如果你是一个Python初学者,关于包的更多内容请阅读Python的官方文档)。
mysite/settings.py:该Django 项目的设置/配置。
mysite/urls.py:该Django项目的URL声明;你的Django站点的“目录”。
mysite/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口。
启动Django项目
python manage.py runserver 127.0.0.1:8080
默认127.0.0.1不用写 直接写端口就是默认的
如果使用外网访问,需要修改配置文件,将域名或IP地址添加进去即可
使用浏览器输入:http://127.0.0.1:8080就可以看到页面了
创建项目:
命令行创建:
在工程目录下执行
$ python manage.py startapp app01
会在mysite工程下生成
mysite/
app01 migrations 数据修改表结构记录 admin Django为我们提供的后台管理 apps 配置当前app models ORM,写指定的类 通过命令可以创建数据库结构
tests 单元测试
views 业务代码
创建整体流程梳理
django #安装: pip3 install django 添加环境变量 #1 创建project django-admin startproject mysite ---mysite ---settings.py ---url.py ---wsgi.py ---- manage.py(启动文件) #2 创建APP python mannage.py startapp app01 #3 静态文件路径配置 TEMPLATES STATICFILES_DIRS=( os.path.join(BASE_DIR,"statics"), ) STATIC_URL = '/static/' # 我们只能用 STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找#4 根据需求设计代码 url.py view.py
#5模板路径配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]