pip3 install django # 在命令中
# 在命令行中创建一个project用
django-admin startproject project_name
?
# 项目创建成功以后会有一个建好的项目目录结构
project_name
├── manage.py # 管理程序的文件,启动和结束等。
└── project
├── __init__.py
├── settings.py # 程序的配置文件
├── urls.py # 程序的路由系统,即:url和处理其函数的对应的关系
└── wsgi.py # 指定框架的wsgi
命令帮助我们创建了几个文件,通过文件将功能代码归类。
1.Django是面向应用开发,在应用中完成具体的业务逻辑
2.什么是应用app: 就好比项目中的一个功能模块,一个项目可以拥有多个功能模块,但至少得有一个,Django称之为app
3.如何创建app(在项目目录下):python3 manage.py startapp app01
?
migrations:数据迁移(移植)模块,内容都是由Django自动生成
__init__.py
__init__.py
admin.py:应用的后台管理系统配置
apps.py:django 1.9后,本应用的相关配置
models.py:数据模型模块,使用ORM框架,类似于MVC模式下的Model层
tests.py:自动化测试模块,可以写自动化测试脚本
views.py:执行相应的逻辑代码模块
# 在命令中
python manage.py runserver 127.0.0.1:8801
?
settings.py 下的:
BASE_DIR # 基础路径
SECRET_KEY # 项目唯一安全码
DEBUG # 开发阶段采用debug模式
ALLOWED_HOSTS # 可以访问的主机们
INSTALLED_APPS # app列表,如果新建需要在此更新加入
MIDDLEWARE # 中间件 wsgi中间件
ROOT_URLCONF # 项目的根路由,项目的分发总路由
TEMPLATES # 模板配置
WSGI_APPLICATION # 网关接口配置
DATABASES # 数据库配置,连接自己的数据库需要修改该配置
AUTH_PASSWORD_VALIDATORS # 密码认证的配置,django写好的
LANGUAGE_CODE # 国际化语言配置
TIME_ZONE
USE_I18N
USE_L10N = True
USE_TZ = True
STATIC_URL = ‘/static/‘ # 静态路由的配置
urls.py 下的:
urlpatterns = [
url(r‘^admin/‘, admin.site.urls),
] # 路由分发的列表,不同请求页面,需要添加不同的url 需修改
1.浏览器发送请求
2.wsgi服务器收到请求,将请求解析交给django
3.中间件过滤请求信息
4.路由完成业务的逻辑分发,到指定的app下views中指定的视图函数
5.视图函数完成业务逻辑分发,返回响应结果
6.将处理的结果通过服务器完成返回到浏览器
# 响应视图 render()
1.定义一个响应视图函数
def index(request):
print(request.method)
return render(request, ‘index.html‘, {‘name‘:‘mingming‘})
?
2.浏览器发送请求,注意响应视图时关键字函数render()
# 重定向 redirect()
1.如果我现在需要返回一个页面和某个页面一样的时候,那么我们需要用一个重定向功能
2.具体实现
def home(request):
return redirect(‘/index/‘)
# 后台中一旦生成就不需要改变的文件称为静态文件
静态文件的请求根路径url:
STATIC_URL = ‘/static/‘ 配置文件中
静态文件的根路由Django自身就带有,需要手动添加一个静态文件的文件夹:
?
STATICFILES_DIRS = [os.path.join(BASE_DIR,‘static‘)]
原理:
静态文件的加载会首先发送一个static请求,服务器根据请求会在服务器自身的文件夹下找到静态文件然后将数据发送至页面。
?
例如:我们常用的css文件就可以放在静态文件中
index.css
h3 {
text-align: center;
}
?
在index.html文件中导入时注意
<link rel="stylesheet" href="http://127.0.0.1:8000/static/index.css">
?
href其实就是向服务器发送了请求,服务器的IP可以省略
?
?
#注意:静态文件的加载其实就是需要注意首先是根路由的配置
?
#然后在配置静态文件的路径需要注意STATICFILES_DIRS名字不能写错。!!!!注意写错了就识别不了。
# 请求路径:
1.当form表单等会发送请求时,如果路径里不写任何内容时,请求会向自身(当前路径发送请求)
2.//127.0.0.1:8000/testaction
3./testaction/
?
?
#get和post请求
发送请求的视图函数需要有一个request参数,该参数是一个对象
request.method 是请求 的方式get/post
?
get/post 获取数据:request.GET/POST.get(‘key‘, None)
?
# 首先第一步:
在项目文件名下导入pymysql
import pymysql
# 第二步:
导入后写上加载语句
pymysql.install_as_MySQLdb()
#这一步实际是替换了默认的配置的数据库
# 第三部:
设置Django连接数据库的默认配置文件,更改配置(settings文件中)
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘dj‘,
‘HOST‘: ‘127.0.0.1‘,
‘PORT‘: 3306,
‘USER‘: ‘root‘,
‘PASSWORD‘: ‘root‘
}
}
#注意:常量的名不能写错了!!!!
# 第四步:
在项目目录下执行:
python manage.py makemigrations
#这一步是实际是将配置好的文件解析好了,但是没有实际生成表
# 第五步:
继续执行:
python manage.py migrate
###!!!注意:
python的解释器环境不同python随版本不同更换为python2或python3
对象调用的常用的几个方法:
filter 过滤条件
# 增
User.objects.create(usr=‘abc‘, pwd=‘123‘) # 第一种方式
user = User(usr=‘owen‘, pwd=‘123‘)
user.save() # 第二种方式
# 删
User.objects.filter(id=1).delete()
# 改
User.objects.filter(pwd=‘123‘).update(pwd=‘000‘)
# 查
User.objects.filter(pwd=‘000‘).all()
User.objects.filter(pwd=‘000‘).first()
####
原文:https://www.cnblogs.com/5j421/p/10445636.html