DjanGo初识方法备录

Django项目创建两种方式

方式一(命令行)

(1)创建django项目
django-admin startproject 项目名
(2)创建app应用
python3 manage.py startapp app01
(3)启动django项目
python3 manage.py runserver
ps:用命令行创建django默认不会自动创建templates文件夹
需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)

方式二(pycharm)

FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
创建app
(1)pycharm命令行创建
(2)python3 manage.py startapp app01
(3)Tools下面run manage task功能栏
(4)启动点小绿色箭头

强调:
1.用django一定要保证只有一个在运行状态 切记切记!!!!!!!
2.一定记得清浏览器的缓存

模板

模板

layout.html

a.css:

{% block mycss%}

b.content:

{% block mycontent%}

c. js:

{% block myjs%}

子板

{%extends "layout.html" %}

{% block mycss%}
xxxxxxx
xxxxxxx

{% block mycontent%}
dbsajbdjsa

a. cookie是存在 客户端的
b. cookie用来验证用户登录验证的信息的
c. cookie是可以被禁用掉

set_cookie():
key: cookie的key
value: cookie的 key对应的值
max_age: cookie的失效时间

expires: 失效时间
path : cookie在哪个路径下生效
domain:域名
httponly

补:

set_signed_cookie(key, val, salt)
分别对应K,V,加盐

路由系统

1、伪静态

将很长的网站域名转换位简单有规则的域名

2、目的

a.为了美观
b.为了优化搜索引擎优化技术,使得网站更容易被搜索到

3、如何实现

通过路由分发技术,然后再url的方法映射的地方通过正则匹配,同时再方法中可在通过多个传参接收多个参数来接收除request以外的参数,具体方法见下:

url:
				
url(r'^index/(\w+)/(\w+)/', index),
url(r'^test/(?P<id>\w+)/(?P<name>\w+)/', test),
					
def test(request, name, id):
print(id , name)

return HttpResponse('test')

4、路由正则与未匹配到(404)

url(r'^test2/$', test2)
url(r'^', notfound) 需要写到最下面

5、反向路由

后台url:
url(r'^logindjsajdbjsabdsabdbsabdhsabdhbsahbdsaasa/$', login, name='xxx')
前台:

####6、路由分组 a.先将路由路径按类进行分组分发给每个类的路由 b.到达每个类的路由后,每个类的路由再将信息分发到不同的方法中去 ``` 总urls.py; url(r'^app02/', include('app02.urls')), url(r'^app03/', include('app03.urls')),

分appurls.py:

from app03 import views

urlpatterns = [

url(r'^students/', views.studnets)
]

###函数视图
####FBV:
				
function based view
			
####CBV:
				
	class based view
				
	urls.py:
	url(r'^login/', views.Login.as_view()),
				
	views.py:
	from django.views import View
	class Login(View):

	def get(self, request):

	return render(request, "login.html")

	def post(self, request):
	uname  = request.POST.get('username')

	print(uname)
	return HttpResponse('ok')
			
			
####原理:
	'get': 请求数据
	'post':提交数据
	'delete': 删除数据
	'put': 更新数据
	'patch': 更新部分数据
		
ps:
	form表单提交 只支持get、post  
	ajax支持
					
	核心:
	def dispatch(self, request, *args, **kwargs):
	super(Login, self).dispatch(request, *args, **kwargs)
###ORM配置
####a.创建数据库
####b.配置mysql数据库的链接:

DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 's8day61', ## 数据库名称
'USER': 'root',
'PASSWORD': '123', ## 安装 mysql 数据库时,输入的 root 用户的密码
'HOST': '127.0.0.1',
}
}

####d. 需要将mysqldb换成pymysql
python3:
	pymysql
					
	python2:
	MySQLdb
					
app下的 __init__.py文件
						
	import pymysql
	pymysql.install_as_MySQLdb()
####e:创建表 命令:
python3  manage.py makemigrations
python3 manage.py migrate
posted @ 2019-07-15 20:08  Huanghongzheng  阅读(231)  评论(1编辑  收藏  举报