python django web项目的构建步骤(一)

简介:

Django

一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。

1、安装好python django(这步略过,安装过程自行完成,网上安装步骤很多),安装的版本不同而生成的文件目录也不同,这里用的是1.6.5的版本的django;

1
2
[root@node3 ~] # django-admin.py --version
1.6.5

2、创建django项目

1
2
3
4
5
6
[root@node3 python] # django-admin.py startproject mysite2
[root@node3 python] # cd mysite2/
[root@node3 mysite2] # ll
total 8
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun  9 22:20 mysite2

以上的是1.6.5版本生成的一个manage.py和一个目录mysite2,如是1.3.7的版本的话生成的是以下的格式:

1
2
3
4
5
6
7
[root@node1 python] # cd mysite2/
[root@node1 mysite2] # ll
total 16
-rw-r--r--. 1 root root    0 Jun 10 10:19 __init__.py
-rw-r--r--. 1 root root  503 Jun 10 10:19 manage.py
-rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py
-rw-r--r--. 1 root root  568 Jun 10 10:19 urls.py

3、这里我们还是以1.6.5的版本为例说明问题,如果我们需要连接数据库,那我们需要去修改mysite2文件夹里的settings.py文件;

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
       'default' : {
           'ENGINE' 'django.db.backends.mysql' ,   # 需要连接什么数据库
           'NAME' 'mysite2' # 需要连接的数据库名
           'USERNAME' 'root' ,     # 连接数据库的用户名
           'PASSWORD' 'linux' ,    # 连接数据库的密码
           'PORT' '3306' ,         # 端口
       }
  }
我们还可以改一下时区和使用的语言
LANGUAGE_CODE =  'en-zh'    # 中文
TIME_ZONE =  'Asia/Shanghai'    # 亚洲,上海

4、之后就可以启动django了,切换到manage.py目录文件下,如不写0.0.0.0:8000(监听所有地址),那默认是监听127.0.0.1:8000这个套接字;

1
[root@node3 mysite2] # python manage.py runserver 0.0.0.0:8000

5、然后就可以在页面上访问了,用本机的地址加端口就可以访问:

1
http: //10 .17.1.151:8000/

wKioL1V37bySBlcSAAFK4H3r4GY139.jpg

################  以下是新建一个APP的简单设置步骤  ############

1、使用manage.py创建一个APP;

1
2
3
4
5
6
[root@node3 mysite2] # python manage.py startapp myapp
[root@node3 mysite2] # ll
total 12
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp
drwxr-xr-x. 2 root root 4096 Jun  9 23:29 mysite2

2、为了使 Django 认识到新应用程序的存在,还需要向 settings.py 文件中的 INSTALLED_APPS 添加一个条目。

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
      'django.contrib.admin' ,
      'django.contrib.auth' ,
      'django.contrib.contenttypes' ,
      'django.contrib.sessions' ,
      'django.contrib.messages' ,
      'django.contrib.staticfiles' ,
      'myapp' ,  添加新建的app
  )

3、切换到myapp中,创建一个模型,也就是在moduls.py文件中新建一个类,做个类代表对应数据库中的一张表;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim models.py
from django.db  import  models
 
class Teacher(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     job = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.job)
 
class Student(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     course = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.course)

##  创建完所需要的表之后就可以使用下面命令进行数据库的同步了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node3 mysite2] # python manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table myapp_teacher
 
You just installed Django 's auth system, which means you don' t have any superusers defined.
Would you like to create one now? ( yes /no ):  yes
Username (leave blank to use  'root' ):  # admin的用户帐号
Email address: abc@ test .com
Password:  # 这个设置是登录admin是的登录密码
Password (again): 
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

##  登录mysql数据库就可以查看到生成的表了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
MariaDB [(none)]> use mysite2;
Database changed
MariaDB [mysite2]> show tables;
+----------------------------+
| Tables_in_mysite2          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| myapp_student              |    # 下面这两个是我们需创建的表student和teacher
| myapp_teacher              |
+----------------------------+
11 rows  in  set  (0.00 sec)
 
MariaDB [mysite2]> desc myapp_student;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| course | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.10 sec)
 
MariaDB [mysite2]> desc myapp_teacher;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| job    | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.00 sec)

4、到这里我们可以通过django的admin管理界面来添加,删除,修改表中的信息,即在myapp目录中的admin.py添加一个class类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim admin.py
from myapp.models  import  Student, Teacher
class TeacherAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'job' ,
     )
 
class StudentAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'course' ,
     )
 
admin.site.register(Student, StudentAdmin)
admin.site.register(Teacher, TeacherAdmin)

这个保存之后就可以在地址栏中输入http://10.17.1.151:8000/admin来访问到了,在这里就直接可以操作数据库表。

wKiom1V37R_DvAdBAAEkpLVSCdw452.jpgwKioL1V37xmC_TGgAAJcpReuEH4566.jpgwKioL1V37yzRew6xAAFZUWQTDx4261.jpg










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1660453,如需转载请自行联系原作者
目录
相关文章
|
5天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
22天前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
27 6
|
23天前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
32 8
|
23天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
27 7
|
24天前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要
25 2
|
26天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
29天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
7月前
|
开发框架 前端开发 JavaScript
Python 有哪些Web框架?比如Flask、Django等知识梳理
Python 有哪些Web框架?比如Flask、Django等知识梳理
385 1
|
7月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
327 0
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
43 1
下一篇
DataWorks