orm配置

一.路由系统

	a. 创建app
		- pycharm 创建
		- 使用命令行的方式创建时候,
			python manage.py startapp app02
		
		上述两种方式的区别:
			使用pycharm创建, 会自动帮我们注册app
			而使用命令行的方式, 并不会帮我们注册
	
	b. 路由的分组
		
		urls.py:
			from django.conf.urls import url, include
			
			urlpatterns = [
				url(r'^admin/', admin.site.urls),
				url(r'^test/', views.test),
				url(r'^classes/', include('classes.urls'))
			]
		
		classes:
			
			urls.py:
				from django.conf.urls import url
			
				urlpatterns = [
					url(r'^get_classes/', views.get_classes),
				]
			
		访问 http://127.0.0.1/classes/get_classes/
		
	c. 路由的分发
		- 正则表达式
		urls.py:
			url(r'^test/(\w+)/(\w+)', views.test),
		views.py:
			def test(request, id, name):
				print(id, name)


精准匹配:
urls.py:
url(r'^test/(?P\w+)/(?P\w+)', views.test),
views.py:
def test(request, id, name):
print(id, name)

		反向路由解析:
			
			urls.py:
				url(r'^login/', views.test, name='m1')
				
			views.py:
				def login(request):
				
					return render(request, "login.html")
			
			login.html:
				<form action='{% url "m1" %}'>


d. FBV 和 CBV:
FBV: 基于函数实现业务逻辑
CBV: 基于类实现业务逻辑
- 实现方式:

					urls.py:
						url(r'^users/', views.Users.as_view())
					
					views.py:
						from django.views import View
						class Users(View):
							
							def dispatch(request):
								super()
							
							def get(self, request):
								pass
							
							def post(self, request):
								pass
								
			写django rest framework (drf)的时候, 更多的会使用CBV的方式




二.orm

	a.基本的配置:
		- 创建一个数据库
		
		- settings.py文件中配置:
			1. 需要在install_app中配置需要连接的app
			2. 需要在database中进行配置连接mysql的用户名和密码以及数据库
		
		- 需要在app下面的__init__.py文件中进行配置pymysql
		
	b. models.py 写数据表模型(类):
		通过类来生成表 (code first)
		# Create your models here.
		class UserInfo(models.Model):
			### 主键自增id不用写, 默认会加上
			name = models.CharField(max_length=32, null=True)
			age = models.CharField(max_length=32, null=True)
		
		生成表:
			python manage.py makemigrations
			
			python manmge.py migrate
posted @ 2019-08-14 19:47  enazede  阅读(217)  评论(0编辑  收藏  举报